Saltar a contenido

Aplicaciones TEF - Servicios publicados

Definiciones

Adquirentes

03 - Cielo

04 - Global

06 - Stone

07 - Adiq

08 - Pagseguro

11 - Acqio

Recibos de Impresión

0 - Segundo recibo

1 - Primer recibo

2 - Todos los recibos

Tipos de Establecimientos

0 - Establecimiento de Red

1 - Establecimiento Principal

2 - Sub establecimiento

Tipos de Pago

1 - Credito a Contado

4 - Credito en Cuotas de la Tienda

5 - Credito en Cuotas del Emisor

6 - Debito a Contado

8 - Pre-Autorización

9 - Confirmación de la Pre-Autorización

Servicios

La API de Pagos consisten en un conjunto de servicios disponibles para realizar transacciones financieras.

package://tef/services.wmlsc

tef.connect

Servicio que inicia previamentela comunicación PhAST para realizar transacciones.

Por patrón, la comunicación se inicia durante la ejecución de la transacción y finaliza al final de la transacción. Utilizando este servicio, es posible iniciar la comunicación antes de que se ejecute la transacción y mantener la misma conexión para la ejecución de múltiples transacciones. Importante: Cuando se ejecuta el servicio tef.connect, la comunicación solo se finalizará con la ejecución del servicio tef.disconnect.

tef.disconnect

Servicio para finalizar la comunicación del PhAST. Debe ser llamado después del tef.connect, cuando la conexión ya no es necesaria.

tef.refund

Servicio de devolución, proporcionado por la aplicación TEF. Este servicio recibe como entrada un PhStruct con la definición TefServices#REFUND_REQUEST_DEFINITION(), que contiene atributos de configuración y devuelve un PhStruct con la definición TefServices#REFUND_RESPONSE_DEFINITION(), conteniendo información sobre la ejecución de la devolución.

  • Entrada:
Campo Tipo Descripción Comportamiento patrón
value string Monto de la transacción Capturar
date date Fecha en que se realizó la transacción Capturar
nsu string NSU del autorizador de transacciones Capturar
print boolean Indica si el TEF debe imprimir el recibo al final de la transacción No imprimir
additionalData string Datos que la aplicación puede enviar al PhAST Server en la solicitud de transacción. Tamaño máximo: 50 bytes. "" (vacio)
include.acquires stringList Indica qué adquirentes se incluirán en la lista Todos
include.ecs stringList Indica qué establecimientos se incluirán en la lista Todos
exclude.acquires stringList Indica qué adquirentes serán excluidos de la lista Ninguno
exclude.ecs stringList Indica qué establecimientos serán excluidos de la lista Ninguno
  • Salida:
Campo Tipo Descripción
result.error string En caso de error, contiene el código de error qué ocurrió y en caso de éxito, string vacía ("").
result.message string En caso de error, contiene la mensaje asociado con el error que ocurrió yen caso de éxito, string vacía ("").
network.name string Nombre de la red (o adquirente) que la terminal esta registrada.
acquire.id string Código del adquirente
acquire.name string Nombre del adquirente
ec.id string Código del establecimiento
ec.name string Nombre del establecimiento
ec.type byte Tipo de establecimiento (Ver sección Tipos de Establecimientos)
ec.nationalId string CUIT o CUIL del Tendero
card.type string Bandera de la tarjeta
card.brand string Bandera de la tarjeta
card.pan string PAN de la tarjeta
card.holder string Nombre del portador de la tarjeta
card.exp string Fecha de expiración de la tarjeta
card.service word Código de servicio de la tarjeta
card.appLabel string Label de aplicación de la tarjeta
refund.value string Monto del pago
refund.datetime datetime Hora del pago
refund.nsu.client dword NSU (Número Secuencial Único) de la terminal
refund.nsu.server dword NSU del servidor
refund.nsu.acquire string NSU del adquirente
refund.nsu.auth dword NSU del autorizador
refund.vias longStringList Lista con los recibos de impresión del establecimiento y cliente de devolución
refund.origional_payment.value string Monto del pago
refund.origional_payment.parcells string Cantidad de cuotas
refund.origional_payment.datetime datetime Hora del pago
refund.origional_payment.nsu.server dword NSU del servidor
refund.origional_payment.nsu.acquire string NSU del adquirente
refund.origional_payment.nsu.auth dword NSU del autorizador

Ejemplo:

use url Service     "package://phast#applet/service.wmlsc";
use url TefServices "package://tef/services.wmlsc";

var request  = PhStruct.create(TefServices#PAYMENT_REQUEST_DEFINITION());
var response = Service#execute("tef.refund", [request]);

if (PhStruct.get(response, "result.error") == "" && PhStruct.get(response, "refund.value") > 0)
{
  Dialogs.alert("¡Transacción completada con éxito!");
}
else
{
  Dialogs.alert("Transacción no completada");
}

Salida:

¡Transacción completada con éxito!

tef.payment

Servicio de Pago, proporcionado por la aplicación TEF, sin previa elección de la operación financiera a ejecutar. Este servicio recibe como entrada un PhStruct con la definición TefServices#PAYMENT_REQUEST_DEFINITION(), que contiene atributos de configuración y devuelve un PhStruct con la definición TefServices#REFUND_RESPONSE_DEFINITION(), conteniendo información sobre la ejecución de la devolución.

En caso de que alguno de los campos del PhStruct de la entrada no sea llenado, se asumirá su ** Comportamiento patrón**. Por ejemplo, caso el campo valor no sea definido en la estructura, se exhibirá un input para qué el operador ingrese el monto de la transacción.

  • Entrada:
Campo Tipo Descripción Comportamiento patrón
value string Monto de la transacción Capturar
cashback string Cantidad de vuelto Capturar
parcells string Número de cuotas Capturar
print boolean Indica si el TEF debe imprimir el recibo al final de la transacción No imprimir
type byte Tipo de pago (Ver sección Tipos de Pago) Capturar
additionalData string Datos que la aplicación puede enviar al PhAST Server en la solicitud de transacción. Tamaño máximo: 50 bytes. "" (vacio)
include.trnsTypes byteList Indica los tipos de pagos se incluirán en la lista Todos
include.acquires stringList Indica qué adquirentes se incluirán en la lista Todos
include.ecs stringList Indica qué establecimientos se incluirán en la lista Todos
exclude.trnsTypes byteList Indica qué establecimientos se incluirán en la lista Ninguno
exclude.acquires stringList Indica qué adquirentes serán excluidos de la lista Ninguno
exclude.ecs stringList Indica qué establecimientos serán excluidos de la lista Ninguno
  • Salida:
Campo Tipo Descripción
result.error string En caso de error, contiene el código de error qué ocurrió y en caso de éxito, string vacía ("").
result.message string En caso de error, contiene la mensaje asociado con el error que ocurrió yen caso de éxito, string vacía ("").
network.name string Nombre de la red (o adquirente) que la terminal esta registrada.
acquire.id string Código da adquirente
acquire.name string Nombre del adquirente
ec.id string Código del establecimiento
ec.name string Nombre del establecimiento
ec.type byte Tipo de establecimiento
ec.nationalId string CUIT del estabelecimiento
product.id byte Código del producto
product.name string Nombre del producto
product.withInterest string Label de la transacción con interés
product.withoutInterest string Label de la transacción sin interés
product.aid string Identificador de la aplicación de la tarjeta
product.arqc string Criptograma de solicitud de autorización
product.imgName string Nombre de la imagen de la bandera de la tarjeta (utilizado en el recibo gráfico)
card.type string Bandera de la tarjeta
card.brand string Bandera de la tarjeta
card.pan string PAN de la tarjeta
card.holder string Titular de la tarjeta
card.exp string Fecha de vencimiento de la tarjeta
card.service dword Identificador de servicio (Credito, Credito en Cuotas, Debito, etc)
card.appLabel string Label de aplicación de la tarjeta
payment.type byte Tipo de pago
payment.value string Monto de pago
payment.cashback string Monto del vuelto
payment.parcells string Número de cuotas
payment.datetime datetime Hora del pago
payment.balance string Saldo de la tarjeta
payment.dtPreDated string Fecha del debito predatado
payment.guarantee string En caso de debito predatado,indica si es con o sin garantía
payment.acquireId string Nombre del adquirente
payment.transactionName string Nombre de la transacción
payment.issueName string Nombre del emisor
payment.nsu.client dword NSU (Número Secuencial Único) de la terminal
payment.nsu.server dword NSU del servidor
payment.nsu.acquire string NSU del adquirente
payment.nsu.auth dword NSU del autorizador
payment.vias longStringList Lista con los recibos de impresión del establecimiento y cliente del pago
payment.tvr byte Valor del TVR (Terminal Verification Result)
payment.cvm byte Resultado de CVM (Cardholder Verification Method)
payment.tlv1 string TLV del 1st Generate AC
payment.tlv2 string TLV del 2nd Generate AC
payment.tlvS string TLV del servidor
payment.responseCode string Código de respuesta del servidor

Ejemplo:

use url Service     "package://phast#applet/service.wmlsc";
use url TefServices "package://tef/services.wmlsc";

var request  = PhStruct.create(TefServices#PAYMENT_REQUEST_DEFINITION());
Service#execute("tef.connect", []);

PhStruct.set(request, "value", 5000); //R$ 50,00
PhStruct.set(request, "print", true); // Imprime el recibo al final de la transacción.

var response = Service#execute("tef.payment", [request]);

if (PhStruct.get(response, "result.error") == "" && PhStruct.get(response, "payment.value") > 0)
{
  Dialogs.alert("¡Transacción completada con éxito!");
}
else
{
  Dialogs.alert("¡Pago no realizado!");
}

Service#execute("tef.disconnect", []);

Salida:

¡Transacción completada con éxito!

tef.print.last

Servicio de impresión de la última transacción realizada.

  • Entrada:

  • reprint (boolean): Indica si la impresión que se va a realizar es reimpresión o no.

  • via (integer): Indicación de los recibos que deben ser impresos.

Ejemplo:

use url Service     "package://phast#applet/service.wmlsc";
use url TefServices "package://tef/services.wmlsc";

var request  = PhStruct.create(TefServices#PAYMENT_REQUEST_DEFINITION());
var response = Service#execute("tef.payment", [request]);

if (PhStruct.get(response, "result.error") == "" && PhStruct.get(response, "payment.value") > 0)
{
  Dialogs.alert("Imprimiendo...");
  Service#execute("tef.print.last", [false, 2]);
}
else
{
  Dialogs.alert("¡Pago no realizado!");
}

Salida:

Imprimiendo...

tef.print.list

Servicio de impresión de una lista de transacciones.

  • Entrada:

  • nsuList (PhList): Lista con las NSU de las transacciones que serán impresas.

  • reprint (boolean): Indicación de si la impresión que se va a realizar es reimpresión o no.
  • via (integer): Indicación de las copias del recibo que deben imprimirse.

Ejemplo:

use url Service     "package://phast#applet/service.wmlsc";
use url TefServices "package://tef/services.wmlsc";

var request  = PhStruct.create(TefServices#PAYMENT_REQUEST_DEFINITION());
var nsuList  = [];

for(var i = 0; i < 3; i++)
{
  var response = Service#execute("tef.payment", [request]);

  if (PhStruct.get(response, "result.error") == "" && PhStruct.get(response, "payment.value") > 0)
  {
    PhList.add(nsuList, PhType.getValue(PhStruct.get(response, "payment.nsu.server"), 0));
  }
  else
  {
    Dialogs.alert("¡Pago no realizado!");
  }
}

if (PhList.count(nsuList) > 0)
{
  Dialogs.alert("Imprimiendo recibos...");
  Service#execute("tef.print.list", [nsuList, false, 2]);
}

Salida:

Imprimiendo recibos...